// 云函数入口文件
const cloud = require('wx-server-sdk')
// 导入axios
const axios = require('axios')
// 初始化环境
cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {
  let {m, d} = event;
  let url = `https://www.todayonhistory.com/today-${m}-${d}.html`;
  // 发起网络请求(异步)
  let res = await axios.get(url);
  let html = res.data;
  
  // JavaScript String.match()
  // let pArr = []
  // let e
  // let item = html.match(/<p>\s*<span>\[\s*(\d+)\s*年[^<]+<\/span>\s*<a[^>]+href="([^"]+)"[^>]*>([^<]+)<\/a>/g);
  //   item.forEach(p => {
  //      // 正则表达式中()称为捕获组
  //     e = p.match(/<span>\[\s*(\d+)\s*年[^<]+<\/span>\s*<a[^>]+href="([^"]+)"[^>]*>([^<]+)<\/a>/);
  //     pArr.push({
  //       year: e[1],
  //       url: "https://www.todayonhistory.com/" + e[2], 
  //       title: e[3]
  //     });
  //   });
  // return pArr

  // JavaScriptRegExp.exec()
  let reg = /<p>.*?<span>\[\s*(\d+)\s*年.*?<\/span>.*?<a.*?href="(.*?)".*?>(.*?)<\/a>.*?<\/p>/g
  let e //event 表示一个事件
  let pArr = [] //用于保存所有事件的信息息（我们需要的数据）

  //RegExp.exec()若匹配到数据则返回array，否则返回null
  while ((e = reg.exec(html)) !== null) {
    pArr.push({
      year: e[1],
      url: "https://www.todayonhistory.com" + e[2], 
      title: e[3]
    })
  }
  return pArr
};